Virtual set-top box that emulates processing of IPTV video content

ABSTRACT

A virtual set-top box (vSTB) for executing a middleware component, designed originally for use with the physical STB, including emulating hardware capabilities of the physical STB to process IPTV content received over a connection for presenting the IPTV content on a display of the electronic device.

RELATED APPLICATIONS

This application claims the benefit of U.S. Provisional Application No.61/095,738, filed Sep. 10, 2008, which is hereby incorporated byreference. This application is related to co-pending U.S. applicationSer. No. 12/556,347, entitled “Dynamic Video Source Selection,” filedherewith.

FIELD OF THE INVENTION

This invention relates to Internet Protocol Television (IPTV) technologyand, specifically, to a system and method for providing an IPTV serviceto a user such that the user may view programming content on a devicesuch as a computer, the presentation and functionality associated withtraditional programming paradigms being maintained.

BACKGROUND OF THE INVENTION

In the traditional television paradigm, programming content is sent asan analogue or digital signal to a viewer's television set via cable,satellite or through the air. The signals are then received, processedand displayed for the viewer to watch on the screen of the televisionset.

However, with the exoteric spread of portable electronic devices, suchas laptop computers, viewers no longer wish to be restricted to watchingtelevision via a conventional television set which is, more or less,confined to use in one physical location. Given the desire or need forportability, and the ubiquitous presence of Internet-based technologieswithin modern computing equipment, the ability to receive IPTV servicesvia computing equipment is becoming increasingly important from both aconsumer's (i.e. viewer's) perspective and from the perspective of theservice providers who seek to commercialize the opportunities.

Thus, the monopoly of the traditional television paradigm is beingeroded and challenged by the development of Internet Television(Internet TV) and Internet Protocol Television (IPTV) technologies.

Internet TV enables a user to select programs from a list and istypically delivered over an IP network in the form of streaming videovia a website. The content is embedded into a web page, and accompanyingtext is typically wrapped around the streaming video which is presentedto the viewer within a separate window. In some ways, this presentationstyle is similar to a newspaper page wherein surrounding text flowsaround, not over the image, albeit that the static image is replaced bya video component.

By contrast, a typical IPTV system enables delivery of a digitaltelevision service to a viewer over a closed network infrastructure. Thedelivery is performed using Internet Protocol and typically includes abroadband connection. The IPTV system receives and displays the videostream, which has been encoded as a series of Internet Protocol (data)packets. IPTV can be in the form of live TV, but also as storedvideo—sometimes known as ‘video on demand’ (VOD).

Traditionally, the viewer must use a device known as a set-top box (STB)in conjunction with his/her television set in order to receive and viewIPTV. The set top box acts as an interface between the television andthe network, decoding the incoming video streaming media, converting itinto standard television signals and providing two-way communicationsover the IP network. It also performs functional processing, such assetting up the connection and quality of service (QoS) with the servicenode, channel change functionality and user display control. Thisfunctionality is achieved via the use of software known as ‘middleware’.

‘Middleware’ is a key component within the IPTV solutions architecture.It is the application software layer that acts as an interface betweenthe user interface and the hardware/operating system (OS) of the STB.Middleware vendors adopt abstraction based strategies to isolatethemselves from the underlying hardware.

However, service providers can find it challenging to make the IPTVbusiness model commercially viable due to the (often relatively high)cost of STBs. This is compounded by the linear nature of thecost/functionality line of STBs—the more features or functions the STBis required to possess, the higher the cost of the device. This hasprompted IPTV service providers to investigate the possibilities ofdelivering their services to mass market end user devices (such aspersonal computers) where the cost of the hardware has already beenborne by the end user/viewer. Thus, if standard computing components canbe used to mirror and mimic their televisual counterparts (e.g. monitor,CPU, disk used to replace TV, STB, VCR respectively) then functionalitycan be maintained whilst eliminating the cost and inconvenience of arequired STB.

In order to receive IPTV services and view them on other devices, suchas a personal or laptop computer, there is a need, therefore, for thecomputer itself to perform the functional processing discussed above inrelation to the STBs used with televisions.

Thus, there is a need for a system which provides the seamless deliveryof IPTV services to an alternative device such as a computer. Ideally,such a system would be arranged and configured such that it can beintegrated with existing IPTV technologies. This integration work isrequired, primarily, in 3 areas:

-   -   1) Video delivery: the solution must be based on standard        broadcast technologies, and not those which have emerged in        relation to web-based (Internet TV) services. This is because of        the difference in viewing experiences discussed above, primarily        in the segregation of text and moving images.    -   2) Conditional Access (CA): service providers require a means of        controlling and managing access to the services. Subscribers may        opt for varying levels of service, and thus access to the        content must be controlled via a conditional access system. This        is typically implemented via the use of virtual or traditional        hardware ‘smart cards’ used in conjunction with STBs. Ideally        such a system is managed from a single installation of the        customer's CA head-end and allows rights to be managed        seamlessly over heterogeneous display devices.    -   3) Middleware: middleware plays a key role in any IPTV system,        and determines the presentation layer of most services. The        choice of middleware is determined by the viewer's chosen        service provider and is typically of a client/server        architecture, the client residing on the STB. Typically,        middleware includes an application management component, an        execution environment, and the ability to access libraries        (Application Programming Interfaces—known as APIs) to control        the underlying hardware/OS.        -   Broadly speaking, known 3^(rd) party middleware can be            categorized into two types:            -   i) Category I middleware: middleware which is embedded                within the Document Object Model (DOM) of a STB's                embedded browser. These products use vendor-provided                extensions to that environment, in the form of                ECMAScript libraries, to control the media management                elements of the service and utilize standards based                rendering technologies to render their user                interfaces—such as HTML & SVG;            -   ii) Category II middleware: middleware that is written                directly on top of the low-level APIs (typically                implemented in languages such as C or C++) provided by                the STB vendors to control the media management elements                of the service and typically utilize proprietary based                rendering technologies to render their user interfaces.

Both approaches suffer from the problem that the STB vendor providedAPIs (both ECMAScript and C/C++) are not standardized and, therefore,each middleware vendor must perform a ‘porting’ exercise each time a newSTB is to be added to their portfolio of supported end user devices.

Another problematic area facing would-be computer-based IPTV systems isthat most known IPTV systems are designed to deliver IP encapsulatedMPEG-2/4 content at 2 to 4 Mbps to users on multicast enabled networks.To date, the general lack of multicast support within large portions ofthe available networks restricts the number of potential target clients.There are several commercial and technical factors in existence, whichremain barriers to the effective delivery of these services.

End users of television services are typically unconcerned with theunderlying delivery mechanism employed to deliver the picture to theirdevice (e.g. DTT, IP etc.). However, they are concerned about thequality of the content which they wish to view and the ease of use withwhich they access that optimal-quality content.

Therefore, a preferred solution should be capable of presenting a highquality service and consistent navigational paradigm to the viewer,whilst (behind the scenes) detecting, selecting and presenting the bestquality programming possible based upon the current position of theviewer's device within the network (regardless of multicast support).

In other words, the solution should incorporate a dynamic video sourceselection (DVSS) mechanism, such that the user is provided with a singleexperience, of optimal quality on any network.

Known solutions attempt to address some of these difficulties, althoughthey typically involve considerable expense from the service provider toeffectively create a parallel distribution mechanism (encoding,encryption, delivery, middleware integration, device integration etc.),and typically provide a different viewing experience (in terms ofpresentation style and format, navigational interfaces etc.) from thatwhich the viewer would expect from a traditional television basedservice.

In addition, many proposed solutions focus on how to deliver IPTVcontent to an end user, rather than how to process and/or display thatcontent once it has been received at the client end, or how toimprove/replace the technology employed at the client end.

For example, EP1895777 A1 discloses a method of providing an IPTVservice to a subscriber, and a network element for executing saidmethod. This is achieved by introducing an additional tier (an‘intertwine’ tier) into the traditional 3 tiered IPTV architecture. Thisintertwine tier comprises IPTV service routers and a communicationnetwork, thus enabling provision of an IPTV service between differentnetworks which may belong to different operators and/or be installed indifferent countries. Thus, the invention adds roaming functionality tothe existing IPTV service.

However, the method and element disclosed in EP1895777 A1 do not enablea subscriber to receive and display ITPV content on an alternativedevice, such as a computer. Instead, the disclosed invention provides analternative architecture for delivery of the programming content to thesubscriber and does not address the issues discussed above concerningthe technology employed at the client end.

Similarly, WO 2008/045384 A2 discloses an IPTV transport architecturewith double layer encryption and bulk decryption. The disclosedinvention is designed to operate in accordance with a client'straditional television/STB combination, and does not provide a means ofpresenting the programming content on an alternative device.

A number of systems are known in relation to STB simulation, for thepurpose of testing constrained, isolated aspects of IPTV servicedelivery.

For example, the invention disclosed in EP 1914940 A1 provides a testapparatus for assessing the quality of an IPTV service, and to locateand repair malfunctions. The test apparatus accesses the IPTV network(from a central office) as a simulation of the user's STB, receives andanalyses channel information and media contents downloaded from the IPTVnetwork, and then generates test results. This obviates the need for anoperator to enter the user's premises and perform the test routine usingmanual test apparatus. Thus, the STB simulation performed by thedisclosed invention is limited such that it only simulates the way inwhich the STB presents itself to the network and receives informationfrom the network. It does not present a fully operable STB emulationsystem which could be used to replace a user's STB and television andpresent the received content to the viewer. Thus, it does not provide ameans of performing all the functions required and expected of aphysical STB.

Similarly, US 2002/0026637 A1 discloses a computer program which allowsa personal computer to emulate the functions of various STBs so that acombined video and an enhanced content stream can be displayed andrandomly accessed to ensure that a desired layout is achieved withrespect to the displayed content. The program is designed to facilitatequick and easy checking of the quality of the content presentation, withmodification to the combined content stream being permitted during thechecks if required. Thus, only one aspect of a traditional STBfunctionality is addressed by the disclosed invention, which does notprovide a complete, alternative system for use in presenting IPTVcontent to an end user. The disclosed invention provides a means ofpre-viewing video and interactive content by a producer rather thanpresenting a complete service to a user.

Neither US 2002/0026637 A1 nor EP 1914940 A1 address the problem ofintegrating different forms of existing middleware products with a STBemulation system. Neither do they include simulation components tosupport or emulate other traditionally required functions such asconditional access and other network management functions.

Thus it is an object of the invention to provide a means for receivingIPTV services on a user's device such as (but not exclusively) apersonal computer, and presenting the IPTV content on the device, suchthat the viewer enjoys continuity of programming service regardless ofhis/her physical location or the underlying hardware/software platformof the device.

Thus, it is an object of the invention to provide a system and methodfor the simulation of a physical STB, and to enable standard computingcomponents to mirror and mimic their televisual counterparts (e.g.monitor, CPU, disk-> TV, STB, VCR).

It is an object of the invention to provide a solution which can beeasily integrated with known IPTV technologies.

It is a further object of the invention to maintain substantially thesame viewing experience as that experienced by a user when receiving andviewing televisual services via traditional (i.e. television plusphysical STB) or alternative technologies. In other words, the content,navigational paradigm, presentation and quality of service must besubstantially the same as those enjoyed by users of traditional IPTVsystems.

It is a further object of the invention to provide a means of receivingand presenting said IPTV service such that 3^(rd) party category I orcategory II middleware, designed for execution by a physical STB, canexecute in its usual manner and provide the same functionality on theviewer's computer without modification. The maintained functionalitywill typically include the ability to perform presentation layerrendering, video blending and multi-media control, and the provision ofUser Interfaces.

Thus, it is an object of the invention to provide a virtual STBapplication environment which not only emulates the underlying hardwarecapabilities of a physical STB (e.g. video scaling, video positioning,chroma keying, alpha blending, UI layout, Remote Control key handlingetc.) but also provides the same software environment in terms ofavailable APIs and libraries such that 3^(rd) party middleware is ableto execute in this environment without modification.

It is a further object of the invention to provide a Conditional Access(CA) mechanism such that a service provider is able to control andmanage the user's ability to access the programming content, saidmechanism being easy to deliver and manage from a network/provider'sperspective.

It is a further object of the invention to provide an IPTV systemwherein the system is resource efficient (especially in respect of CPUusage and memory).

It is a further object of the invention to provide an IPTV system forreceiving and presenting IPTV services on a user's device such thatdynamic video source selection (DVSS) is achieved, wherein the system isable to determine and acquire the optimal quality programming possiblebased on the current position of the user's device within the network.It is preferred that this source selection is achieved dynamically,without the need for explicit input from the user.

Thus, the present invention provides a means of eliminating oralleviating at least one of the above identified problems, and achievingat least one of the above identified objectives.

SUMMARY OF THE INVENTION

In accordance with a first aspect of the present invention, there isprovided a set-top box emulation system for presenting IPTV content to auser on an electronic device, said emulation system comprising:

i) a middleware component;

ii) a plurality of management components arranged and configured toemulate the capabilities of a physical set-top box, wherein theplurality of management components comprises at least one of apresentation manager, a codec manager and/or a conditional accessmanager; and

iii) a plurality of interfaces to enable communication between saidplurality of management components and said middleware, wherein theplurality of interfaces comprises at least one of a graphics interface,a MUX interface, a Conditional Access interface, a Media interface, andEvents Interface, a System Settings interface and/or a PersistentStorage interface.

In a preferred embodiment of this first aspect, an IPTV system isarranged and configured such that a viewer can receive and watch IPTVtelevisual content displayed on an electronic device, said device actingas an alternative to a traditional television and STB combination. In atypical embodiment, said device is a personal or laptop computer,although other electronic devices may be used.

It is preferred that the televisual content is delivered from a serviceprovider's head-end in the same way that it would be delivered to a STBbeing used in conjunction with a television set. When viewing saidtelevisual content in accordance with the present invention, thenavigational and presentation styles are maintained, and the format ofthe content is the same or substantially the same as that experienced bya viewer using a physical STB and television set.

Essentially, the invention provides a means for emulation of atraditional (physical) STB such that a virtual STB environment iscreated within the viewer's computer. The emulation is achieved by asoftware-based system which creates a virtual STB environment for other(known) software to interact with, such that the emulation systemrunning on the computer presents itself to the network (and serviceprovider) as if it were a physical STB connected to a television.

Preferably, the present invention has 3^(rd) party middleware embeddedwithin it, said middleware being appropriate to the viewer's chosenservice provider. That is to say, the virtual STB component acts as awrapper around a vendor's middleware. Thus, a STB emulation component isinstalled on the end user's (i.e. viewer's) device, said emulationcomponent encapsulating 3^(rd) party middleware which is appropriate forand compatible with the delivery system deployed by the user's chosenIPTV service provider.

Thus, in accordance with a first aspect of the invention, there isprovided an API-based STB emulation environment within which known3^(rd) party middleware (both category I and II) is able to execute. Theexecution and performance of the middleware is preserved in itstraditional form, and the 3^(rd) party middleware interacts with thevirtual STB environment (i.e. with the invention) as it would with atraditional STB operating within a traditional IPTV system. Nomodification of the vendor's middleware is required.

Thus, the viewer is able to view televisual content on an electronicdevice such as a personal or laptop computer, or other electronicdevice, by providing a virtual STB environment within the device, saidvirtual environment being able interface and interact with known 3^(rd)party middleware such that all aspects of functionality, performance andpresentation formats are substantially identical to those enjoyed byusers of a traditional IPTV (i.e. STB plus TV) configuration.

In accordance with a second aspect of the invention, the STB emulationcomponent emulates the underlying hardware capabilities of a physicalSTB, thus enabling the same functionality (such as video scaling, videopositioning, chroma keying, alpha blending, User Interface (UI) layout,Remote Control key handling and so on). These functions are emulated bya plurality of sub-components, each sub-component handling the emulationof a particular STB function. Each sub-component may, in turn, compriseone or more further sub components.

In a preferred embodiment of the first aspect of the invention, thesub-components of the STB emulation component may include (but are notrestricted to) a player component, an embedded web browser, a managementcomponent, a decryption component and a set of one or more APIlibraries.

The STB emulation component may be configured, or tailored, to theviewer's (or service provider's) requirements via the use ofconfiguration files, which store settings to enable and facilitate themanagement and control of the behavior of the STB emulation component.

In addition to the STB emulation environment, there is provided a set ofcore APIs which act as conduits into the 3^(rd) party middlewareexecuting within the virtual (i.e. emulated STB) environment. These APIsare essential to the performance of the claimed invention.

The APIs service requests made by external applications and expose thefunctionality of the middleware to those applications. Thus, the STBemulation component operates in conjunction with the set of core APIs toenable the maintenance of connectivity between standard category I andII middleware and the IPTV service provider.

In other words, in order to facilitate management from the networkoperator perspective, there needs to be direct access into the embeddedmiddleware by the service provider. If the middleware belongs tocategory I, this is achieved by DOM connectivity. If, however, themiddleware belongs to category II then connectivity is achieved via themiddleware's APIs which connect to the set of core APIs provided inaccordance with the invention.

Thus, the emulated environment provided by the present invention isagnostic to 3^(rd) party middleware connectivity.

In a preferred embodiment of a first aspect of the invention, the APIsprovide the following essential capabilities, although other interfacesmay be included so as to extend the set of capabilities or,alternatively, some may not be required in alternative embodiments: aGraphics Interface, a MUX interface, a conditional Access (CA)Interface, a Media Interface, a Network Interface, an Event interface, aSystem Settings Interface and a Persistent Storage Interface.

In accordance with a second aspect of the invention, the middlewareselected for use with the arrangement described above is category II(i.e. API-based) middleware. In a preferred embodiment, the userinterface is handled by the category II middleware. The APIs provided inaccordance with the present invention ‘plug into’ (i.e. provideconnectivity with) the APIs provided within the 3^(rd) party category IImiddleware.

Thus, the category II middleware is able to operate within the emulatedenvironment without any alteration or modification, even though it wasdesigned originally for use with a physical STB (and television set)rather than a computer system.

In accordance with a third aspect of the invention, the arrangementdescribed in relation to the first aspect is configured for use withcategory I (i.e. browser-based) middleware. In accordance with the thirdaspect of the invention, and in addition to the features listed inrelation to the first aspect, there is provided a proprietary webbrowser. Preferably, the set of core interfaces described above(graphics interface, events interface etc.) integrate, or connect, withthe proprietary browser. In a preferred embodiment, the user interfaceis handled by the proprietary browser, working in conjunction with thecategory I middleware.

In accordance with the third aspect of the invention, a set of STBemulation APIs (written in ECMAScript) is inserted into the DOM of thebrowser. Third party category I middleware is also inserted into the DOMof the browser. The STB emulation APIs emulate and/or replace the APIswhich would traditionally be provided by the STB vendor. They take DOMrequests and translate them into API requests.

Thus, the category I middleware is able to operate within the emulatedenvironment without any alteration or modification, even though it wasdesigned originally for use with a physical STB rather than a computersystem.

For the sake of clarity, it should be noted that a typical embodiment ofthe emulation system described herein provides at least two sets ofdistinct APIs:

-   -   1) the set of APIs which are embedded within the proprietary        browser's DOM, providing genuine STB API emulation. These are        written in ECMAScript so as to enable their integration with the        embedded browser which forms a sub-component of the STB        emulation component; and    -   2) the set of APIs which are provided to enable the integration        of 3^(rd) party vendor middleware. These are written in a        language such as C or C++, and provide an extensible interface        between the 3^(rd) party category II middleware and the        underlying STB features. These are the fundamental links into        the middleware encapsulated or nested within the emulated        environment, and virtualize the core functions and hardware of        the traditional (physical) STB as listed above.

According to a fourth aspect of the invention, there is provided aDynamic Video Source Selection (DVSS) component arranged and configuredfor use with the present invention.

As previously stated, viewers of IPTV programming content are notgenerally concerned with the underlying delivery mechanism(s) used toprovide their viewing content. They do, however, care about the qualityof that content, and the ease with which they can access their desiredprograms.

Thus, there is a need to provide, for the viewer, a consistentnavigational paradigm whilst, behind the scenes, determining andacquiring the best quality programming available based upon the currentposition of the client device within the network. In summary, the aim ofthe DVSS component is to provide a consistent viewing experience, usingany network, whilst maintaining optimal quality of service.

In addition, the provision of a DVSS component removes the need for aclosed network, and allows the client device to receive ‘regular’ DVBbased broadcast feeds (typically via a USB-based DVB-T dongle) and thusit is not mandatory that the video packets received via the network areencapsulated in IP. This approach is usually referred to as a ‘hybrid’approach.

The functionality of the DVSS component can be decomposed into a numberof key technical areas:

-   -   1) Dynamic network awareness: the client device needs to be        aware of the environment in which it finds itself. This implies        an ability to detect the capacity of a network to deliver        multicast traffic and, if so, at what bitrate. The bitrate        calculation should also take into account the possibility of two        (or more) devices which are attempting to source content over        the same DSL line.    -   2) Dynamic addressing and sourcing: This implies that the        metadata collected at the head-end should not multiply based on        the number of delivery mechanisms available to us. A simpler        approach would be to use a common identifier for the content and        then allow the client to determine the appropriate delivery        mechanism. For example, a channel asset is typically created for        Channel 1 by associating it with a URL in the form of        IGMP://xxx.xxx.xxx.xxx:5000. This is unfortunate, as it strongly        implies that a multicast network is available (IGMP). However,        in accordance with a fourth aspect of the present invention, a        DVSS component provides the ability to issue the appropriate        requests independent of original URI based information—this        could, perhaps, be from multicast, USB based DVB-T devices or        other streaming technologies such as p2p or streamlets.    -   3) Network management: In order to deploy the present invention        to many residential viewers, it is essential that it is capable        of providing a network management feature that allows operators        the ability to manage it as if it were a network device such as        a STB or router. This is achieved by the implementation of a        TR-135 client that allows the invention to be managed by        standards-based TR-069 based management servers.

These and other aspects of the present invention will be apparent fromand elucidated with reference to, the embodiment described herein.

BRIEF DESCRIPTION OF THE DRAWINGS

An embodiment of the present invention will now be described, by way ofexample only, and with reference to the accompanying drawings, in which:

FIG. 1 shows a computer executing a 3^(rd) party middleware running inconjunction with the present invention, despite the middleware havingbeen designed for use with a traditional STB;

FIG. 2 shows the primary components of a preferred embodiment of thepresent invention, in particular a typical arrangement wherein the APIsprovide the essential interfaces between the operating systems and theemulated environment;

FIG. 3 shows an embodiment wherein the system is arranged and configuredfor use with (API-based) category II middleware;

FIG. 4 shows an embodiment wherein the system is arranged and configuredfor use with (browser embedded) category I middleware;

FIG. 5 shows how the televisual presentation of the service is preservedregardless of the device used to present the content;

FIG. 6 shows the reduction in effort and expense required on behalf ofthe service provider when using the present invention;

FIG. 7 shows the architecture of a typical, traditional IPTV systemwhich utilizes a physical STB;

FIG. 8 shows how the architecture of traditional IPTV and web TV systemsduplicate each other's core functions, and also shows the differentpresentation styles when content is displayed for viewing on thedifferent end devices (i.e. a television plus physical STB displayingIPTV content versus a computer displaying web TV content);

FIG. 9 shows how the present invention eliminates or minimizes theduplication of core functions while providing content to either atelevision plus STB or computer being used in conjunction with thepresent invention, and also maintaining the presentation style of thecontent for the viewer;

FIG. 10 shows the main components in accordance with a preferredembodiment of the present invention, and illustrates its ability totreat the video and UI layers independently until the point of displayon the end device;

FIG. 11 shows a detailed scheme of one aspect of the present invention,specifically the DVSS subsystem for performing dynamic source selection;

FIG. 12 shows the core components of a system arranged in accordancewith an embodiment of the present invention to deliver IPTV content to adevice for display to a viewer.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT

With reference to the above listed Figures, FIG. 7 shows how, in atraditional IPTV arrangement comprising a physical STB, content isdelivered to a viewer's television set such that the presentation styleof the content is the same as that experienced by the viewer when usinga non-IPTV based delivery system. As FIG. 7 shows, signals aretransmitted from the service provider over a network, and are forwardedby a router to the viewer's STB. The STB, which is connected to theviewer's television set, processes the signals such that the content canbe displayed on the television screen in a style and format identical tothat experienced in the more ‘traditional’ television broadcastingparadigms.

The present invention removes the need for a traditional (i.e. physical)STB or television set, and provides a software-based emulationenvironment such that the signals can be received, processed and viewedon an alternative device, such as a computer, without loss or adaptationof service, presentation style or functionality.

This maintenance of viewing experience is illustrated in FIG. 1, whichshows a laptop computer configured for use in accordance with thepresent invention, and illustrates how the invention has beenarchitected to deliver a rich multi-media televisual experience akin tothat traditionally associated with a physical STB and television set.The image shows the end result of how the 3^(rd) party middleware haselected to render the user interface and video layers with respect toeach other.

Thus, the functional components of the invention (best illustrated inFIG. 10), coupled with the core APIs (shown in FIGS. 3 and 4) allow themiddleware to define the exact co-ordinates of each visual element inall 3 planes (X, Y and Z). The Z-plane also includes the ability toapply alpha blending techniques to vary the opacity of the UserInterface (UI) layer with respect to the video layer.

As shown in FIG. 6, operators are typically forced to consider an almostcomplete duplication of their television infrastructure when they decideto target devices such as PCs with services. This is generally becausethe protocols and technologies associated with web TV delivery, as wellas its navigational paradigms, differ from those of IPTVimplementations. This is largely a result of technological limitationsthan choice.

When considering WebTV services, operators are usually forced totransrate or transcode their existing content into a more PC ‘friendly’format such as Windows Media and Flash. This then requires theemployment of alternative Conditional Access and Digital rightsManagement (DRM) strategies, and must finally re-design their wholeUI/presentation layer to overcome the non-TV nature of their targetdevice.

This leads, generally, to implementations where text flows around (notover) the video. FIGS. 7, 8 and 9 emphasize the point by illustratingthe result of each of the architectures on the services that can bedelivered to the end user.

According to a first aspect of the invention, a computing device isconfigured and arranged such that an operating system (OS) is able toexecute on said computer, and is connected to a network such that datamay be received from external source(s) over the network and/or sent toexternal source(s) over the network.

In addition, it is preferred that the computing device is arranged andconfigured to include a plurality of hardware components such as thoseincluded in a typical personal/laptop computing system. Such hardwarecomponents may include, but not be limited to:

-   -   i) a monitor (‘screen’) for displaying visual information and        programming content;    -   ii) speakers for presenting sounds and audio content; and    -   iii) a hard drive for recording programming content and/or other        data;

FIG. 2 shows how, according to a first aspect of the invention, aplurality of interfaces are provided to enable communication between theOS and the (category I or II) middleware which is embedded within theemulated environment. Said interfaces act as conduits for communicationbetween the OS and components of the emulated STB environment. As such,the interfaces provide the fundamental links between the 3^(rd) partymiddleware embedded within the emulated environment.

FIG. 3 shows how the core interfaces (APIs) connect directly to the APIsprovided by the category II middleware according to a second aspect ofthe invention. FIG. 4 shows how the core interfaces (APIs) connect tothe proprietary web browser provided according to a third aspect of theinvention, the category I middleware being embedded within the DOM ofsaid browser and connecting to the browser via a STB API emulationcomponent.

In a preferred embodiment, said interfaces may provide the followingessential capabilities, although other interfaces may be included so asto extend the set of capabilities or, alternatively, some may not berequired in alternative embodiments:

-   -   1) Graphics interface, providing the application within the        emulated STB environment with a mechanism to inform the        underlying graphical subsystem that something has changed and        that it should now refresh itself;    -   2) MUX interface, which enables the application within the        virtual STB environment to control the UI and video mixing        capabilities (including chroma keying and alpha blending);    -   3) CA interface, which enables applications to initiate the        registration of 3^(rd) party conditional access subsystems and        to interact with the features provided by those vendors;    -   4) Media interface, which enables applications executing within        the emulated STB environment to control the request, decode and        display of data streams. Said data streams could contain audio,        video or data information. This interface abstracts the        application from the underlying transport protocols and codecs        required to display the content and simplifies them into a        number of simple ‘play’ commands.        -   Fundamentally, this addresses the afore-mentioned need to            relieve the viewer of the burden of deciding which            underlying mechanism is required to receive the desired            televisual content. The viewer is not, typically, concerned            with selection between IGMP, RTSP, DVB-S/C/T or P2P. Thus,            the media interface services requests from the DVSS            component of the STB emulator, such that the viewer is able            to simply select the content (s)he wishes to watch, the            technical aspects of the optimal delivery mechanism being            handled ‘behind the scenes’. In other words, this subsystem            has the capability to make decisions based on the network            environment on how best to source and deliver the requested            content.

Preferably, this abstraction is continued with respect to both containerformats and media types, being able to seamlessly decode multipleformats such as MPEG-1, MPEG-2, MPEG-4, WMV, Flash etc.

-   -   5) Network Interface, needed to support the abstracted network        delivery required by the Media Interface. This interface        provides modules for supporting standard video delivery        mechanisms: IGMP is provided to handle multicast IP based        broadcast content, an intelligent RTSP proxy is provided to        communicate in the appropriate RTSP dialect with RFC2326 based        servers. HTTP and HTTPS interfaces are also provided for        standard Web 2.0 based communications.    -   6) Event interface, which is the primary interface existing        between the OS based interface drivers for keyboard, mouse and        remote control devices to pass their inputs/actions on to the        application within the emulated STB environment.    -   7) System Settings Interface, which are provided (primarily) to        enable the operator to configure the virtual environment in        accordance with his needs and without having to make changes to        the STB emulation component itself.    -   8) Persistent Storage Interface, which provides a mechanism for        the application executing within the emulated environment to        store both content and content metadata on the local system to        enable such features as PVR and ‘off-line’ modes to be        implemented. Additionally, this may facilitate the operation of        some middleware products which require this feature to cache        carousel delivered EPG metadata.

Turning to FIG. 12, a preferred embodiment of the invention is shown,and illustrates in greater detail the STB emulation component of theinvention. Said emulation component comprises further subcomponentsincluding:

-   -   i) A player component; it is preferred that the player component        comprises one or more sub-components, such as a hardware        abstraction layer, a video codec component, a DVB subtitle codec        component, a PID filter, and an audio codec component.    -   ii) API libraries; in a preferred embodiment, these are        implemented in a language such as Javascript, and may include a        display API (to provide connectivity with said player        component), an AV API (to provide connectivity with a DVSS        controller, which in turn integrates with said DVSS component)        and an Event API (which provides support for requests made by        the management component).    -   iii) An embedded web browser; it is preferred that the UI        functionality is performed via the embedded web browser provided        in accordance with the third aspect of the invention. The        embedded Javascript APIs enable the browser to integrate with        various other subcomponents of the emulator to control the user        interface. For example, a Display API is preferably provided so        as to handle requests made via the browser and requiring action        by a sub-component of the player component;    -   iv) A management component; this may further comprise        subcomponents such as a scheduler, a log/statistics maintenance        component, a license manager for handling the licensing of the        emulation component, a TR-135 client that allows the device to        be managed by standards based TR-069 management servers, and an        Event Listener which interacts with an Event API provided within        the Javascript API libraries.    -   v) A decryption component which integrates with said DVSS        component and said player component;

FIGS. 4 and 12 show a web browser embedded within a typical embodimentof the third aspect of the invention such that (when using category Imiddleware) UI functionality may be performed via the embeddedproprietary browser. Preferably, the browser complies with theinterfaces such that Category I middleware can be executed on theviewer's computer without modification. The STB API emulation componentis inserted into the DOM of the browser (3) and accurately representsthe interface corresponding to the STB which is being emulated. In apreferred embodiment, this API emulation component can be inserteddynamically and as such the browser is capable of emulating manystandard IPTV STBs. The APIs themselves provide a mapping from theJavascript language directly to the underlying C APIs. The DOM object isalso capable of registering callback events so that events occurringwithin the hardware environment can be reported back to the Javascriptapplication for actioning.

Turning to a preferred embodiment of the fourth aspect of the invention,a DVSS component is provided and is integrated with the emulationsub-components described above. The DVSS component implements theconcept of dynamic video source selection, which is most clearlyillustrated in FIG. 11.

Preferably, the DVSS component further comprises sub-components such as(but not restricted to) a PVR controller, an IGMP client, a RTSP clientand a DVB-T client. The DVSS component integrates with a controllerwhich in turn is supported by an AV API contained within the afore-saidJavascript API libraries. In a preferred embodiment, the DVSS componentmay also integrate with the decryption component.

In a typical embodiment, a management component is provided whichenables a network operator to manage the system as if it were a routeror a physical STB. This further comprises a TR-135 client which allowsthe management according to standards based TR-069 based managementservers.

In a typical embodiment, a decryption component is provided, and formsan interface between said DVSS component and said player component. Therole of this component is to receive signals from a dynamically selectedsource, decrypt said signals and pass them on to the player componentfor further processing and display.

In a typical embodiment, API libraries, implemented in a language suchas Javascript, are provided and may include a display API (to provideconnectivity with said player component), an AV API (to provideconnectivity with a DVSS controller, which in turn integrates with saidDVSS component) and an Event API (which provides support for requestsmade by the management component).

It should be noted that the above-mentioned embodiments illustraterather than limit the invention, and that those skilled in the art willbe capable of designing many alternative embodiments without departingfrom the scope of the invention as defined by the appended claims. Inthe claims, any reference signs placed in parentheses shall not beconstrued as limiting the claims. The word “comprising” and “comprises”,and the like, does not exclude the presence of elements or steps otherthan those listed in any claim or the specification as a whole. In thepresent specification, “comprises” means “includes or consists of” and“comprising” means “including or consisting of”. The singular referenceof an element does not exclude the plural reference of such elements andvice-versa. The invention may be implemented by means of hardwarecomprising several distinct elements, and by means of a suitablyprogrammed computer. In a device claim enumerating several means,several of these means may be embodied by one and the same item ofhardware. The mere fact that certain measures are recited in mutuallydifferent dependent claims does not indicate that a combination of thesemeasures cannot be used to advantage.

1. A set-top box emulation system for presenting IPTV content to a useron an electronic device, said emulation system comprising: a middlewarecomponent; a plurality of management components arranged and configuredto emulate the capabilities of a physical set-top box, wherein theplurality of management components comprising a presentation manager, acodec manager and a conditional access manager, wherein the IPTV contentis video content, and wherein the management components are configuredto perform video processing of the video content, user interface (UI)layout generation, and remote-control key handling, and wherein thevideo processing comprises decoding the IPTV content, video scaling ofthe IPTV content, video positioning of the IPTV content, chroma keyingof the IPTV content, and alpha blending of the IPTV content; and aplurality of interfaces to enable communication between said pluralityof management components and said middleware, wherein the plurality ofinterfaces comprises a graphics interface, a MUX interface, aConditional Access interface, a Media interface, and Events Interface, aSystem Settings interface and/or a Persistent Storage interface.
 2. Theset-top box emulation system of claim 1, wherein at least one of thepluralities of interfaces connects to at least one interface provided bythe middleware component.
 3. The set-top box emulation system of claim1, wherein the plurality of management components also includes abrowser, said browser being configured for integration with saidmiddleware component.
 4. The set-top box emulation system of claim 3,wherein said middleware component is inserted into the document objectmodel (DOM) of said browser.
 5. The set-top box emulation system ofclaim 4, wherein said middleware component integrates with said browservia a second plurality of interfaces.
 6. The set-top box emulationsystem of claim 1, wherein a user interface is managed by saidmiddleware component.
 7. The set-top box emulation system of claim 1,wherein the plurality of management components also includes a dynamicvideo source selection (DVSS) component, said DVSS component comprisingfurther subcomponents and being configured to integrate with saidplurality of management components, said subcomponents comprising atleast one of a PVR controller, an IGMP client, a RTSP client and a DVB-Tclient.
 8. A method of emulating functions of a set-top box so as topresent IPTV content to a viewer on an electronic device, the methodcomprising: receiving IPTV content by said electronic device from anetwork; using a plurality of set-top box emulation components to createan emulated set-top box environment within said electronic device,wherein the IPTV content is video content, and wherein the emulationcomponents perform video processing of the video content, user interface(UI) layout generation, and remote-control key handling, and wherein thevideo processing comprises decoding the IPTV content, video scaling ofthe IPTV content, video positioning of the IPTV content, chroma keyingof the IPTV content, and alpha blending of the IPTV content; andexecuting a middleware component within said emulated environment, saidmiddleware component communicating with said emulated environment via aplurality of interfaces.
 9. The method of claim 8, wherein the pluralityof set-top box emulation components comprises one or more of apresentation manager, a codec manager and/or a conditional accessmanager.
 10. The method of claim 9, wherein the plurality of interfacescomprises at least one of a graphics interface, a MUX interface, aConditional Access interface, a Media interface, and Events Interface, aSystem Settings interface and/or a Persistent Storage interface.
 11. Acomputer-implemented method of emulating a physical set-top box (STB),comprising: receiving Internet Protocol Television (IPTV) content over aconnection of an electronic device from an Internet Protocol (IP) closednetwork; executing by the electronic device a middleware component,designed originally for use with the physical STB, including emulatinghardware capabilities of the physical STB to process the IPTV content;and presenting the IPTV content on a display of the electronic device,wherein the IPTV content is video content, and wherein the emulatedhardware capabilities includes video processing of the video content,user interface (UI) layout generation, and remote-control key handling,and wherein the video processing comprises decoding the IPTV content,video scaling of the IPTV content, video positioning of the IPTVcontent, chroma keying of the IPTV content, and alpha blending of theIPTV content.
 12. The method of claim 11, wherein said executingcomprises: providing a plurality of STB emulation components to createan emulated STB environment within said electronic device; and executingthe middleware component within the emulated STB environment via aplurality of interfaces of the emulated STB environment that enablescommunication between the plurality of STB emulation components and themiddleware component.
 13. The method of claim 12, wherein the pluralityof interfaces and the middleware component are embedded within aDocument Object Model (DOM) of a browser operating on the electronicdevice, and wherein said executing further comprises: receiving DOMrequests at the browser; and translating the DOM requests intoapplication programming interface (API) requests for interaction withthe middleware component.
 14. The method of claim 12, wherein saidreceiving comprises receiving the IPTV content from a head-end of anIPTV system over the IP closed network, and wherein said executingcomprises: managing access by the electronic device to the IPTV contentusing a conditional access (CA) manager and a CA interface between themiddleware component and the CA manager; managing presentation of theIPTV content on the display using a presentation manager and a graphicsinterface, wherein the graphics interface enables the middlewarecomponent with mechanism to inform the underlying graphical subsystem torefresh the display; and managing presentation of a user interfacelayout on the display using the presentation manager and a multiplexing(MUX) interface, wherein the MUX interface enables the middlewarecomponent to control user interface (UI) and video mixing of the IPTVcontent for said presenting.
 15. The method of claim 14, wherein theIPTV content is encoded by the head-end of the IPTV system, and whereinsaid executing further comprises: managing requesting and decoding ofthe IPTV content by the electronic device using a codec manager, a mediainterface, and a network interface, wherein the media interface andnetwork interface enable the middleware component to control requesting,decoding, and displaying of the IPTV content; receiving one or moreevents over an event interface, wherein the event interface enables themiddleware component to receive inputs or actions from an operatingsystem (OS) based interface driver for one or more user input devices;managing one or more settings of the emulated STB environment using asystem setting interface, wherein the system interface enables anoperator to configure the emulated STB environment without having tomake changes to the plurality of STB emulation components themselves;and managing storage of the IPTV content and content metadata on a localsystem using a persistent storage interface, wherein the persistentstorage interface enables at least one of personal video recorder (PVR)features, off-line modes, or caching carousel delivered electronicprogramming guide (EPG) metadata.
 16. The method of claim 14, whereinthe IPTV content is encrypted and encoded by the head-end of the IPTVsystem, and wherein executing the middleware component comprises:providing two-way communication between the head-end system and theelectronic device over the IP closed network; managing access by theelectronic device to the IPTV content using a CA manager and a CAinterface between the middleware component and the CA manager, whereinsaid managing the access comprises initiating registration of themiddleware component with the CA system on the IPTV head-end system; anddecrypting the IPTV content received from the head-end of the IPTVsystem; and decoding the IPTV content received from the head-end of theIPTV system.
 17. The method of claim 16, wherein said providing two-waycommunication comprises communicating with the head-end of the IPTVsystem over the IP closed network as if it were a physical STB.
 18. Themethod of claim 16, wherein said providing two-way communicationcomprises communicating with the head-end of the IPTV system over the IPclosed network as if it were a router.
 19. The method of claim 11,wherein the emulated hardware capabilities includes generating a userinterface (UI) layout to be presented on the display of the electronicdevice.